home *** CD-ROM | disk | FTP | other *** search
/ Interactive Media Design Review 1999 / Interactive Media Design Review 1999.iso / pc / Demos / Bombardier_PC / DATACH.CST / 00350_Script_350 < prev    next >
Text File  |  1999-03-07  |  8KB  |  262 lines

  1. -- ****** Printing Routines *******
  2. --
  3. -- chris howell
  4. --
  5. global cpLineheight, cpTableCount, cpFontsize, cpFontname, cpLmargin
  6. global cpTable1, cpTable2, cpTable3, cpTable4, cpTable5
  7. global cpTable6, cpTable7, cpTable8, cpTable9, cpTable10
  8. global cpCurrentLinePos
  9. global cPRINTHANDLE
  10.  
  11. -- print the various data screen by calling interprint
  12. on printAnnualOwnership
  13.   watchcursor()
  14.   interprint("Print_Ownership")
  15.   arrowcursor()
  16. end
  17.  
  18. on printhourlybars
  19.   watchcursor()
  20.   interprint("Print_HourlyBars")
  21.   arrowcursor()
  22. end
  23.  
  24. on printcostofownership  
  25.   watchcursor()
  26.   interprint("Print_CostOwnership")
  27.   arrowcursor()
  28. end
  29.  
  30. on printincomereturn
  31.   watchcursor()
  32.   interprint("Print_IncomeReturn")
  33.   arrowcursor()
  34. end
  35.  
  36. on printflexjetpricing
  37.   watchcursor()
  38.   interprint("Print_flexjetpricing")
  39.   arrowcursor()
  40. end
  41.  
  42. -- parse description page (stored as a castmember) and print the requested page
  43. -- Description language is as follows:
  44. --        _   - Underline as first character in document sets landscape mode      
  45. --  ~H (num)  - sets the line height ie: ~H12
  46. --  ~L (num)  - sets the left margin
  47. --  ~S (num)  - sets the font size
  48. --  ~F (name) - sets the font name  ie:~FAriel
  49. --  ~D (num), (num) ...  - define table   ie:~D0,100,150,210,400
  50. --  ~T (data), (data), ... - Print data in table
  51. --     (data) may start with a formating code as follows (in order parsed)
  52. --       !N  - normal type
  53. --       !B  - bold
  54. --       !I  - italic
  55. --       !U  - underline      - types may be combined as in !BU
  56. --       {   - left justify
  57. --       |   - center text
  58. --       }   - right justify
  59. --       @   - replace symbol with current plane name
  60. --       ^   - replace symbol with current date
  61. --       ?(castmembername)  - replaces with text in castmembername
  62.  
  63. on interprint ipcastname 
  64.   global mysystemcanprint
  65.   if mysystemcanprint then
  66.     initchprint
  67.     put the text of member ipcastname into printcommands
  68.     set linestoprint = the number of lines in printcommands
  69.     set cpCurrentLinePos = 0
  70.     if char 1 of printcommands = "_" then
  71.       setLandscapeMode(cPRINTHANDLE,True)
  72.       delete line 1 of printcommands
  73.     end if
  74.     newPage(cPRINTHANDLE)
  75.     repeat with pcount = 1 to linestoprint
  76.       set advanceflag = 0
  77.       set inputline = line pcount of printcommands
  78.       set prxmd = char 1 of inputline
  79.       if prxmd = "~" then
  80.         set prtodo = char 2 of inputline
  81.         delete char 1 to 2 of inputline
  82.         case (prtodo) of
  83.           "H":
  84.             set cpLineheight = value(inputline)
  85.           "L":
  86.             set cpLmargin = value(inputline)
  87.           "S":
  88.             set cpFontSize = value(inputline)
  89.             setTextSize(cPRINTHANDLE, cpFontSize)
  90.           "F":
  91.             set cpFontName = inputline
  92.             setTextFont(cPRINTHANDLE, cpFontName)
  93.           "D":
  94.             set cpTableCount = the number of items in inputline
  95.             if cpTableCount > 0 then set cpTable1 = value(item 1 of inputline)
  96.             if cpTableCount > 1 then set cpTable2 = value(item 2 of inputline)
  97.             if cpTableCount > 2 then set cpTable3 = value(item 3 of inputline)
  98.             if cpTableCount > 3 then set cpTable4 = value(item 4 of inputline)
  99.             if cpTableCount > 4 then set cpTable5 = value(item 5 of inputline)
  100.             if cpTableCount > 5 then set cpTable6 = value(item 6 of inputline)
  101.             if cpTableCount > 6 then set cpTable7 = value(item 7 of inputline)
  102.             if cpTableCount > 7 then set cpTable8 = value(item 8 of inputline)
  103.             if cpTableCount > 8 then set cpTable9 = value(item 9 of inputline)
  104.           "T":
  105.             set tempcol = the number of items in inputline
  106.             if tempcol > 0 then cpPrint(cpTable1, item 1 of inputline)
  107.             if tempcol > 1 then cpPrint(cpTable2, item 2 of inputline)
  108.             if tempcol > 2 then cpPrint(cpTable3, item 3 of inputline)
  109.             if tempcol > 3 then cpPrint(cpTable4, item 4 of inputline)
  110.             if tempcol > 4 then cpPrint(cpTable5, item 5 of inputline)
  111.             if tempcol > 5 then cpPrint(cpTable6, item 6 of inputline)
  112.             if tempcol > 6 then cpPrint(cpTable7, item 7 of inputline)
  113.             if tempcol > 7 then cpPrint(cpTable8, item 8 of inputline)
  114.             if tempcol > 8 then cpPrint(cpTable9, item 9 of inputline)
  115.             set advanceflag = 1
  116.         end case
  117.       else
  118.         cpPrint(cpLmargin, inputline)
  119.         set advanceflag = 1
  120.       end if
  121.       if advanceflag = 1 then
  122.         -- move down 1 line
  123.         set cpCurrentLinePos = cpCurrentLinePos + cpLineheight
  124.       end if
  125.     end repeat
  126.     -- print page
  127.     if doJobSetup(cPRINTHANDLE) then print cPRINTHANDLE
  128.     set cPRINTHANDLE = 0
  129.   end if
  130. end
  131.  
  132. on initchprint
  133.   register(xtra "PrintOMatic", "POMX153-038-05853")
  134.   set cPRINTHANDLE = new(xtra "PrintOMatic")
  135.   if not objectP(cPRINTHANDLE) then 
  136.     alert("no printer")
  137.   end if
  138. end
  139.  
  140. on cpPrint itextpos, itext
  141.   global CurrentPlane
  142.   
  143.   -- parse style
  144.   if char 1 of itext = " " then
  145.     delete char 1 of itext
  146.   end if
  147.   if char 1 of itext = "!" then
  148.     delete char 1 of itext
  149.     if char 1 of itext = "N" then
  150.       delete char 1 of itext
  151.       setTextStyle (cPRINTHANDLE, "normal")
  152.     end if
  153.     if char 1 of itext = "B" then
  154.       delete char 1 of itext
  155.       setTextStyle (cPRINTHANDLE, "bold")
  156.     end if
  157.     if char 1 of itext = "I" then
  158.       delete char 1 of itext
  159.       setTextStyle (cPRINTHANDLE, "italic")
  160.     end if
  161.     if char 1 of itext = "U" then
  162.       delete char 1 of itext
  163.       setTextStyle (cPRINTHANDLE, "underline")
  164.     end if  
  165.   end if
  166.   if char 1 of itext = "{" then
  167.     delete char 1 of itext
  168.     setTextJust(cPRINTHANDLE,"left")
  169.   end if
  170.   if char 1 of itext = "}" then
  171.     delete char 1 of itext
  172.     setTextJust(cPRINTHANDLE,"right")
  173.   end if
  174.   if char 1 of itext = "|" then
  175.     delete char 1 of itext
  176.     setTextJust(cPRINTHANDLE,"center")
  177.   end if
  178.   set outstring = itext
  179.   if char 1 of itext = "@" then
  180.     set outstring = CurrentPlane
  181.   end if
  182.   if char 1 of itext = "^" then
  183.     set outstring = the date
  184.   end if
  185.   if char 1 of itext = "?" then
  186.     delete char 1 of itext
  187.     set outstring = the text of member itext
  188.   end if
  189.   
  190.   -- print test at position itextpos
  191.   drawText(cPRINTHANDLE, outstring, Point(itextpos,cpCurrentLinePos))
  192. end
  193.  
  194.  
  195. ---- formatting (same as bjs)
  196.  
  197. on formatch numbertoformat
  198.   if integerP(numbertoformat) or floatp(numbertoformat) then
  199.     set the floatPrecision = 4
  200.     set numtoconv = 1.0000 * numbertoformat
  201.     --  put numtoconv & "-is the numtoconv"
  202.     if numtoconv > 1000 then
  203.       set eout = format(1.0 * integer(numtoconv))
  204.     else
  205.       set eout = format(numtoconv)
  206.     end if
  207.     --   put "formatting" && numbertoformat && eout
  208.     return eout
  209.   else
  210.     return numbertoformat
  211.   end if
  212. end
  213.  
  214. on formatch2 numbertoformat
  215.   if integerP(numbertoformat) or floatp(numbertoformat) then
  216.     set the floatPrecision = 2
  217.     set numtoconv = 1.0000 * numbertoformat
  218.     --  put numtoconv & "-is the numtoconv"
  219.     if numtoconv > 1000 then
  220.       set eout = format(1.0 * integer(numtoconv))
  221.     else
  222.       set eout = format(numtoconv)
  223.     end if
  224.     --   put "formatting" && numbertoformat && eout
  225.     return eout
  226.   else
  227.     return numbertoformat
  228.   end if
  229. end
  230.  
  231.  
  232. ---format 
  233. on format figure
  234.   set figure=""&figure
  235.   set len=length(figure)
  236.   --assuming that we have 4 digits after rhe point
  237.   if figure contains "." then set len=len-5
  238.   
  239.   set fmoney =""
  240.   set ii=0
  241.   repeat with i=0 to len
  242.     set ii=ii+1
  243.     if ii=4 and len-i > 0 then
  244.       set fmoney = ","&fmoney
  245.       set fmoney = chars(figure,len-i,len-i)&fmoney
  246.       set ii=1
  247.     else
  248.       set fmoney = chars(figure,len-i,len-i)&fmoney
  249.     end if
  250.   end repeat 
  251.   
  252.   set len=length(figure)
  253.   if chars(figure,len-4,len)<>".0000" then
  254.     set fmoney=fmoney&chars(figure,len-4,len-2)
  255.   end if
  256.   
  257.   --  
  258.   set figure=fmoney
  259.   return(figure)
  260. end
  261. ---format $ sign
  262.